Шаг 53 - Понимание оптимизации по скорости и размеру.

Рассмотрев процедуры и макрос мы подошли к понятию оптимизации. Чем же различается использование макро и процедур. Во первый процедуру нужно вызвать. Делает это команда CALL.

53_1.gif (853 b)

В результате у нас экономиться место в программе, так как код процедур будет всего в одном месте, а из разных мест мы его будем использовать.

53_2.gif (3021 b)

Это хорошо, только при вызове процедуры происходит помещение параметров в стек, помещения в стек адреса возврата и возвращение из процедуры, на все это тратиться время. Соответственно программа которая содержит множество процедур будет работать медленнее чем программа без таковых, например при использовании макро.

53_3.gif (3001 b)

Соответственно код с использованием макро будет больше за счет включения повторяющихся частей. Получается, что если в лоб, то у нас есть два метода оптимизации по скорости и размеру. В реальность это не самый лучший выбор, например огромная процедура которая вызывается всего 5 раз наверно очень сильно влияет на размер и мало на скорость, и наоборот мелкая процедуры вызываемая 100000 раз в цикле может очень сильно повлиять на время и мало на размер. Развитые средства программирования имеют уже встроенные оптимизаторы, но принципиальные идеи точно такие.

Hosted by uCoz